CORE_FILES= ./HAVNet.Core/Lambda/Func.cs \
./HAVNet.Core/Lambda/Memo.cs \
./HAVNet.Core/String/Strings.cs \
./HAVNet.Core/Bits/Bytes.cs \
./HAVNet.Core/Bits/Buffer.cs \
./HAVNet.Core/Bits/BitMask.cs \
./HAVNet.Core/Properties/AssemblyInfo.cs \
./HAVNet.Core/LitJson/IJsonWrapper.cs \
./HAVNet.Core/LitJson/JsonException.cs \
./HAVNet.Core/LitJson/JsonData.cs \
./HAVNet.Core/LitJson/Lexer.cs \
./HAVNet.Core/LitJson/JsonWriter.cs \
./HAVNet.Core/LitJson/JsonMapper.cs \
./HAVNet.Core/LitJson/JsonReader.cs \
./HAVNet.Core/LitJson/ParserToken.cs \
./HAVNet.Core/Array/Arrays.cs \
./HAVNet.Core/IO/TreePath.cs \
./HAVNet.Core/IO/Files.cs \
./HAVNet.Core/IO/Dirs.cs \
./HAVNet.Core/IO/XMLSer.cs \
./HAVNet.Core/Regexes.cs \
./HAVNet.Core/Time/UnixTime.cs \
./HAVNet.Core/Time/Crono.cs \
./HAVNet.Core/Errors.cs \
./HAVNet.Core/TSConsole.cs \
./HAVNet.Core/Lazy.cs

INTROS_FILES= ./HAVNet.Intros/Properties/AssemblyInfo.cs \
./HAVNet.Intros/ParseTree/NodeTerminalSymbol.cs \
./HAVNet.Intros/ParseTree/NodeSymbol.cs \
./HAVNet.Intros/ParseTree/NodeNonTerminalSymbol.cs \
./HAVNet.Intros/ASTBuilder.cs \
./HAVNet.Intros/Parsing/Types.cs \
./HAVNet.Intros/Parsing/Parser.cs \
./HAVNet.Intros/Parsing/Scanner.cs \
./HAVNet.Intros/AST/ASTMemberDeclTypeDecl.cs \
./HAVNet.Intros/AST/ASTEmbStmtBreak.cs \
./HAVNet.Intros/AST/ASTFormalParam.cs \
./HAVNet.Intros/AST/ASTExprPrimChecked.cs \
./HAVNet.Intros/AST/ASTExprPrimDelegate.cs \
./HAVNet.Intros/AST/ASTEmbStmtYield.cs \
./HAVNet.Intros/AST/ASTForIterator.cs \
./HAVNet.Intros/AST/ASTAccessorEvent.cs \
./HAVNet.Intros/AST/ASTLocalVarDeclton.cs \
./HAVNet.Intros/AST/ASTExprPrimThis.cs \
./HAVNet.Intros/AST/ASTExprUnary.cs \
./HAVNet.Intros/AST/ASTForInitializer.cs \
./HAVNet.Intros/AST/ASTEmbStmt.cs \
./HAVNet.Intros/AST/ASTEmbStmtForEach.cs \
./HAVNet.Intros/AST/ASTAttribute.cs \
./HAVNet.Intros/AST/ASTMemberDeclProperty.cs \
./HAVNet.Intros/AST/ASTAccessorNormal.cs \
./HAVNet.Intros/AST/ASTNamespaceMemberDecl.cs \
./HAVNet.Intros/AST/ASTMemberDeclOperator.cs \
./HAVNet.Intros/AST/ASTStmtGotoLabel.cs \
./HAVNet.Intros/AST/ASTStatement.cs \
./HAVNet.Intros/AST/ASTExprPrimNew.cs \
./HAVNet.Intros/AST/ASTGlobalAttributes.cs \
./HAVNet.Intros/AST/ASTEmbStmtWhile.cs \
./HAVNet.Intros/AST/ASTEmbStmtLock.cs \
./HAVNet.Intros/AST/ASTEmbStmtContinue.cs \
./HAVNet.Intros/AST/ASTAnonMethodParam.cs \
./HAVNet.Intros/AST/ASTMemberDeclIndexer.cs \
./HAVNet.Intros/AST/ASTExpr.cs \
./HAVNet.Intros/AST/ASTEmbStmtStatementExpression.cs \
./HAVNet.Intros/AST/ASTObjectOrCollecInit.cs \
./HAVNet.Intros/AST/ASTSwitchSection.cs \
./HAVNet.Intros/AST/ASTTypeName.cs \
./HAVNet.Intros/AST/ASTExternAliasDirective.cs \
./HAVNet.Intros/AST/ASTMemberOrElemInit.cs \
./HAVNet.Intros/AST/ASTExprPrimType.cs \
./HAVNet.Intros/AST/ASTExprPrimSizeof.cs \
./HAVNet.Intros/AST/ASTNode.cs \
./HAVNet.Intros/AST/ASTExprPrimUnchecked.cs \
./HAVNet.Intros/AST/ASTExprPrim.cs \
./HAVNet.Intros/AST/ASTTypeConstraint.cs \
./HAVNet.Intros/AST/ASTMemberDeclConst.cs \
./HAVNet.Intros/AST/ASTAttributeArgument.cs \
./HAVNet.Intros/AST/ASTResolvedType.cs \
./HAVNet.Intros/AST/ASTEnumMemberDeclaration.cs \
./HAVNet.Intros/AST/ASTTypeArgumentList.cs \
./HAVNet.Intros/AST/ASTExprExplicitTypedLambda.cs \
./HAVNet.Intros/AST/ASTLocalVarDecltor.cs \
./HAVNet.Intros/AST/ASTEmbStmtChecked.cs \
./HAVNet.Intros/AST/ASTEmbStmtGoTo.cs \
./HAVNet.Intros/AST/ASTEmbStmtFor.cs \
./HAVNet.Intros/AST/ASTAttributeGroup.cs \
./HAVNet.Intros/AST/ASTMemberDeclEvent.cs \
./HAVNet.Intros/AST/ASTEmbStmtDo.cs \
./HAVNet.Intros/AST/ASTExprUnaryHead.cs \
./HAVNet.Intros/AST/ASTTypeDeclEnum.cs \
./HAVNet.Intros/AST/ASTEmbStmtUnsafe.cs \
./HAVNet.Intros/AST/ASTMemberDeclDtor.cs \
./HAVNet.Intros/AST/ASTMemberDeclCastOperator.cs \
./HAVNet.Intros/AST/ASTEmbStmtIf.cs \
./HAVNet.Intros/AST/ASTTypeParam.cs \
./HAVNet.Intros/AST/ASTMemberDeclField.cs \
./HAVNet.Intros/AST/ASTTypeDeclClass.cs \
./HAVNet.Intros/AST/ASTNamespaceNamespace.cs \
./HAVNet.Intros/AST/ASTMemberDeclIndexerI.cs \
./HAVNet.Intros/AST/ASTEmbStmtUnchecked.cs \
./HAVNet.Intros/AST/ASTExprAssignment.cs \
./HAVNet.Intros/AST/ASTExprPrimTypeof.cs \
./HAVNet.Intros/AST/ASTSwitchLabel.cs \
./HAVNet.Intros/AST/ASTEmbStmtThrow.cs \
./HAVNet.Intros/AST/ASTExprPrimBase.cs \
./HAVNet.Intros/AST/ASTType.cs \
./HAVNet.Intros/AST/ASTExprPrimLit.cs \
./HAVNet.Intros/AST/ASTAccessorInterface.cs \
./HAVNet.Intros/AST/ASTMemberDeclPropertyI.cs \
./HAVNet.Intros/AST/ASTMemberDecl.cs \
./HAVNet.Intros/AST/ASTEmbStmtBlock.cs \
./HAVNet.Intros/AST/ASTStatementExpression.cs \
./HAVNet.Intros/AST/ASTEmbStmtSwitch.cs \
./HAVNet.Intros/AST/ASTExprImplicitTypedLambda.cs \
./HAVNet.Intros/AST/ASTEmbStmtTry.cs \
./HAVNet.Intros/AST/ASTEmbStmtReturn.cs \
./HAVNet.Intros/AST/Mods.cs \
./HAVNet.Intros/AST/ASTIdentExpressionPair.cs \
./HAVNet.Intros/AST/ASTTypeDeclInterface.cs \
./HAVNet.Intros/AST/ASTVariableDeclarator.cs \
./HAVNet.Intros/AST/ASTExprPrimTail.cs \
./HAVNet.Intros/AST/ASTCatch.cs \
./HAVNet.Intros/AST/ASTExprBinaryExpr.cs \
./HAVNet.Intros/AST/ASTVariableInitializer.cs \
./HAVNet.Intros/AST/ASTStmtLocalConst.cs \
./HAVNet.Intros/AST/ASTMemberDeclEventI.cs \
./HAVNet.Intros/AST/ASTTypeDeclStruct.cs \
./HAVNet.Intros/AST/ASTExprPrimBtwnParens.cs \
./HAVNet.Intros/AST/ASTMemberName.cs \
./HAVNet.Intros/AST/ASTCS3.cs \
./HAVNet.Intros/AST/ASTExprNonAssignment.cs \
./HAVNet.Intros/AST/ASTExprPrimName.cs \
./HAVNet.Intros/AST/ASTMemberDeclMethodI.cs \
./HAVNet.Intros/AST/ASTArgument.cs \
./HAVNet.Intros/AST/ASTEmbStmtSemicolon.cs \
./HAVNet.Intros/AST/ASTStmtLocalVar.cs \
./HAVNet.Intros/AST/ASTConstInitializer.cs \
./HAVNet.Intros/AST/ASTMemberDeclFixedBuffer.cs \
./HAVNet.Intros/AST/ASTTypeDeclDelegate.cs \
./HAVNet.Intros/AST/ASTTypeNamePart.cs \
./HAVNet.Intros/AST/ASTExprPrimDefault.cs \
./HAVNet.Intros/AST/ASTEmbStmtUsing.cs \
./HAVNet.Intros/AST/ASTResourceAcquisition.cs \
./HAVNet.Intros/AST/ASTUsing.cs \
./HAVNet.Intros/AST/ASTMemberDeclCtor.cs \
./HAVNet.Intros/AST/ASTMemberDeclMethod.cs \
./HAVNet.Intros/AST/ASTBlock.cs \
./HAVNet.Intros/AST/ASTEmbStmtFixed.cs \
./HAVNet.Intros/AST/ASTNamespaceTypeDecl.cs

TRANS_FILES= ./HAVNet.Transformers/Program.cs \
./HAVNet.Transformers/Properties/AssemblyInfo.cs \
./HAVNet.Transformers/Walkers/WalkerStmts.cs \
./HAVNet.Transformers/Walkers/WalkerClassesProperties.cs \
./HAVNet.Transformers/Walkers/WalkerClasses.cs \
./HAVNet.Transformers/Walkers/WalkerClassesMethods.cs \
./HAVNet.Transformers/Walkers/WalkerNamespaceMemberDecls.cs

COMPILER	= mcs
RM		= rm -f
TRANS_TARGET	= trans
INTROS_TARGET	= HAVNet.Intros.dll
CORE_TARGET	= HAVNet.Core.dll

$(TRANS_TARGET) : $(CORE_TARGET) $(INTROS_TARGET) $(TRANS_FILES)
	$(COMPILER) \
	-reference:$(CORE_TARGET) \
	-reference:$(INTROS_TARGET) \
	-out:$(TRANS_TARGET) \
	$(TRANS_FILES)

$(INTROS_TARGET) : $(CORE_TARGET) $(INTROS_FILES)
	$(COMPILER) -target:library \
	-reference:$(CORE_TARGET) \
	-out:$(INTROS_TARGET) \
	$(INTROS_FILES)

$(CORE_TARGET): $(CORE_FILES)
	$(COMPILER) -target:library \
	-out:$(CORE_TARGET) \
	$(CORE_FILES)

.PHONY:
remake:
	$(RM) $(TRANS_TARGET)
	$(RM) $(INTROS_TARGET)
	$(RM) $(CORE_TARGET)
	make

.PHONY:
clean:
	echo 'nada por ahora :P'

